/// 检查邮箱格式
bool zhiIsEmail(String input) {
  if (input == null || input.isEmpty) return false;
  // 邮箱正则
  String regexEmail = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*\$";
  return RegExp(regexEmail).hasMatch(input);
}

///大陆手机号码11位数，匹配格式：前三位固定格式+后8位任意数
/// 此方法中前三位格式有：
/// 13+任意数 * 15+除4的任意数 * 18+除1和4的任意数 * 17+除9的任意数 * 147
bool isChinaPhoneLegal(String str) {
  return new RegExp(
          '^((13[0-9])|(15[^4])|(166)|(17[0-8])|(18[0-9])|(19[8-9])|(147,145))\\d{8}\$')
      .hasMatch(str);
}


// 纯数字
 final String DIGIT_REGEX = "[0-9]+";

// 含有数字
 final String CONTAIN_DIGIT_REGEX = ".*[0-9].*";

// 纯字母
 final String LETTER_REGEX = "[a-zA-Z]+";

// 包含字母
 final String SMALL_CONTAIN_LETTER_REGEX = ".*[a-z].*";

// 包含字母
 final String BIG_CONTAIN_LETTER_REGEX = ".*[A-Z].*";

// 包含字母
 final String CONTAIN_LETTER_REGEX = ".*[a-zA-Z].*";

// 纯中文
 final String CHINESE_REGEX = "[\u4e00-\u9fa5]";

// 仅仅包含字母和数字
 final String LETTER_DIGIT_REGEX = "^[a-z0-9A-Z]+\$";
 final String CHINESE_LETTER_REGEX = "([\u4e00-\u9fa5]+|[a-zA-Z]+)";
 final String CHINESE_LETTER_DIGIT_REGEX =
    "^[a-z0-9A-Z\u4e00-\u9fa5]+\$";

// 纯数字
 bool isOnlyDigit(String input) {
if (input == null || input.isEmpty) return false;
return new RegExp(DIGIT_REGEX).hasMatch(input);
}

// 含有数字
 bool hasDigit(String input) {
if (input == null || input.isEmpty) return false;
return new RegExp(CONTAIN_DIGIT_REGEX).hasMatch(input);
}

// 是否包含中文
 bool isChinese(String input) {
if (input == null || input.isEmpty) return false;
return new RegExp(CHINESE_REGEX).hasMatch(input);
}

/// 检查字符长度
bool zhiCheckStringLength(String? input, int length) {
  if (input == null || input.isEmpty) return false;
  return input.length >= length;
}
